Business Impact

Let's explore how to have a sense of where your code and systems fit into the broader context of the business.

Having a sense of a big picture#

“The most valuable engineers are the ones who habitually view their work through the lens of what the business needs to succeed. Which is a skill you have to practice and foster and cultivate, just like any other.”

- Charity Majors

The final element that everyone expects from senior engineers is having some sense of the “bigger picture.” People are usually vague about what this means, but by and large, they mean having a sense of where your code and systems fit into the broader context of how the company makes and spends money.

See the bigger picture

Outcomes over features#

As a senior engineer, you realize that it doesn’t matter if you deliver the perfect feature if a confounding factor prevents the user from seeing the desired outcome. Requirements that are given or agreed upon can be wrong.

Ask the right questions#

If junior engineers are hired to find the right answers, then senior engineers should constantly be on the watch to ask the right questions. Your communication skills, especially your writing skills, are essential here to clarify and push back with tact.

Ask the right questions

Shift left#

Time spent on ensuring everybody has the same definitions of terminology and shares the same context on desired goals can save 100x that amount of time down the line when code is already written. This concept is called shifting left:

Shift left

Note: IBM Research also looked at the relative cost to correct bugs and defects based on when in the software development lifecycle they were identified and resolved. The study showed that defects identified and resolved during the Requirements and Design phase of development are 60-100X less expensive to fix than those discovered and fixed after product release. (Source: Infostretch)

In fact, strategically saying “No” can be your single most valuable action. Having made similar mistakes before, you are able to anticipate potential problems. Contributing in this way is often even better than suggesting an immediate solution. Sometimes, this goes as far as redesigning your own job if you realize you are not working on the right thing. If, as a junior dev, your goal is to fit in, as a senior, you have the power to stand out when it matters.

“I’m as proud of what we don’t do as I am of what we do.”

- Steve Jobs

Awareness of your impact#

Awareness of your impact does extend beyond business toward your industry and your community. If we believe that technology is powerful, we must also believe that the people who wield it are responsible for that power. The medical industry has the Hippocratic Oath, commonly interpreted as “First do no harm.”

Awareness of your impact

The Computer Lib Pledge#

The closest thing we have to the Hippocratic Oath is “the Computer Lib Pledge” articulated by tech pioneer Ted Nelson in 1974’s Dream Machines:

  • The purpose of computers is human freedom.

  • I am going to help make people free through computers.

  • I will not help the computer priesthood confuse and bully the public.

  • I will endeavor to explain patiently what computer systems really do.

  • I will not give misleading answers to get people off my back, like “Because that’s the way computers work” instead of “Because that’s the way I designed it.”

  • I will stand firm against the forces of evil.

  • I will speak up against computer systems that are oppressive, insulting, or unkind and do the best I can to improve or replace them if I cannot prevent them from being bought or created in the first place.

  • I will fight injustice, complications, and any company that makes things difficult on purpose.

  • I will do all I can to further human understanding, especially through the new visualization tools of interactive computer graphics.

  • I will do what I can to make systems easy to understand, interactive wherever possible, and fun for the user.

  • I will try not to make fun of another user’s favorite computer language, even if it is COBOL or BASIC.

Continuing on the individual contributor track beyond senior dev is out of this course’s scope, but I can refer you to some resources to get you started:

Mentorship, Allyship, and Sponsorship

Quiz Yourself on Senior Developer